import axios from "axios"
import  NProgress  from "nprogress"
import "nprogress/nprogress.css"

import {isUserTempId} from "@/utils/auth"


// 创建实例对象
let instance=axios.create({
    baseURL:"/sph",    //默认域名
    timeout:5000    //超时时间
})

// 请求拦截
instance.interceptors.request.use((config)=>{
    // 开启进度条
    NProgress.start()

    //向请求头添加 usertempId 用户临时唯一标识
    config.headers.userTempId = isUserTempId();

    // 返回 请求的所有的配置信息
    return config;
})

// 响应拦截
instance.interceptors.response.use((response)=>{
    // 关闭进度条
    NProgress.done()

    switch(response.data.code){
        case 200:
            // 返回 响应的结果
            return response.data.data;
            // 处理 结果
        case 201:
            return "响应拦截器中的提示：参数错误";
        default:  //其它结果
            return response.data;
    }
},(error)=>{
    // 关闭进度条
    NProgress.done()

    // 统一输出错误信息
    console.log(error.message)

    // 1. 返回一个失败状态的Promise
        // return Promise.reject();

    //2. 返回 一个 penging 状态的Promise 。中断Promise链
    return new Promise(()=>{})
})


//暴露 instance
export default instance;